@echo off
REM OH一点通插件安装脚本 (Windows版本)
REM 用于快速安装和配置OH一点通VSCode插件

echo 🚀 OH一点通插件安装脚本
echo ================================

REM 检查Node.js是否安装
node --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未找到Node.js，请先安装Node.js
    echo 请访问 https://nodejs.org/ 下载并安装Node.js
    pause
    exit /b 1
)

REM 检查npm是否安装
npm --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未找到npm，请确保Node.js安装完整
    pause
    exit /b 1
)

REM 检查VSCode是否安装
code --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未找到VSCode命令行工具
    echo 请确保VSCode已安装，并在VSCode中安装'code'命令
    echo 按Ctrl+Shift+P，搜索'Shell Command: Install code command in PATH'
    pause
    exit /b 1
)

echo ✅ 环境检查通过

REM 进入插件目录
cd /d "%~dp0"

echo 📦 安装依赖包...
npm install
if %errorlevel% neq 0 (
    echo ❌ 依赖安装失败
    pause
    exit /b 1
)

echo 🔨 编译TypeScript代码...
npm run compile
if %errorlevel% neq 0 (
    echo ❌ 编译失败
    pause
    exit /b 1
)

echo 🔍 检查微服务状态...

REM 检查微服务状态
set services_running=0
set total_services=6

echo 检查微服务状态...

REM 检查代码补全服务
curl -s --connect-timeout 5 http://localhost:8081/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 代码补全服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  代码补全服务 未运行或无法访问
)

REM 检查代码生成服务
curl -s --connect-timeout 5 http://localhost:8082/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 代码生成服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  代码生成服务 未运行或无法访问
)

REM 检查代码分析服务
curl -s --connect-timeout 5 http://localhost:8083/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 代码分析服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  代码分析服务 未运行或无法访问
)

REM 检查LLM服务
curl -s --connect-timeout 5 http://localhost:8084/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ LLM服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  LLM服务 未运行或无法访问
)

REM 检查数据服务
curl -s --connect-timeout 5 http://localhost:8085/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 数据服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  数据服务 未运行或无法访问
)

REM 检查构建服务
curl -s --connect-timeout 5 http://localhost:8086/actuator/health >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 构建服务 运行正常
    set /a services_running+=1
) else (
    echo ⚠️  构建服务 未运行或无法访问
)

echo 微服务状态: %services_running%/%total_services% 个服务运行中

if %services_running% equ 0 (
    echo ⚠️  警告: 所有微服务都未运行
    echo 请确保SmartCodeService微服务集群正在运行
    echo 可以运行以下命令启动服务:
    echo   cd ..\ && start-all.bat
)

echo.
echo 🎉 OH一点通插件安装完成！
echo.
echo 📋 使用说明:
echo 1. 在VSCode中按F5启动调试模式
echo 2. 或者运行: code --install-extension oh-yidian-tong-1.0.0.vsix
echo 3. 在C++文件中按Ctrl+Space进行代码续写
echo 4. 按Ctrl+Shift+G进行代码生成
echo 5. 右键菜单选择其他功能
echo.
echo ⚙️  配置说明:
echo 1. 打开VSCode设置 (Ctrl+,)
echo 2. 搜索'OH一点通'
echo 3. 配置微服务地址和GLM4.6 API密钥
echo.
echo 🔧 故障排除:
echo 1. 确保微服务正在运行
echo 2. 检查网络连接
echo 3. 验证API密钥有效性
echo 4. 查看VSCode开发者控制台错误信息
echo.
echo 📚 更多信息请查看README.md文件

pause
